Another fix for #164884.
authorKristian Rietveld <kris@imendio.com>
Tue, 18 Jul 2006 12:33:25 +0000 (12:33 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 18 Jul 2006 12:33:25 +0000 (12:33 +0000)
2006-07-18  Kristian Rietveld  <kris@imendio.com>

Another fix for #164884.

* gtk/gtktreeprivate.h: add in_grab field.

* gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
to possibly begin a drag when there's no grab pending,
(gtk_tree_view_grab_notify): toggle in_grab field.

ChangeLog
ChangeLog.pre-2-10
gtk/gtktreeprivate.h
gtk/gtktreeview.c

index 84059dcfe673e4ea3228a7e85f62ff088aa5123b..757c7e6063c9fe7e1536eead1a705989051244f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-07-18  Kristian Rietveld  <kris@imendio.com>
+
+       Another fix for #164884.
+
+       * gtk/gtktreeprivate.h: add in_grab field.
+
+       * gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
+       to possibly begin a drag when there's no grab pending,
+       (gtk_tree_view_grab_notify): toggle in_grab field.
+
 2006-07-18  Kristian Rietveld  <kris@imendio.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_realize): use MAX
index 84059dcfe673e4ea3228a7e85f62ff088aa5123b..757c7e6063c9fe7e1536eead1a705989051244f0 100644 (file)
@@ -1,3 +1,13 @@
+2006-07-18  Kristian Rietveld  <kris@imendio.com>
+
+       Another fix for #164884.
+
+       * gtk/gtktreeprivate.h: add in_grab field.
+
+       * gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
+       to possibly begin a drag when there's no grab pending,
+       (gtk_tree_view_grab_notify): toggle in_grab field.
+
 2006-07-18  Kristian Rietveld  <kris@imendio.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_realize): use MAX
index 9e7b591c03d81ae2374de079bdba6cbf63aab424..0d3b3e0a61694e54ccb88a9d85e32a08fa00c445 100644 (file)
@@ -231,6 +231,8 @@ struct _GtkTreeViewPrivate
 
   guint rubber_banding_enable : 1;
 
+  guint in_grab : 1;
+
 
   /* Auto expand/collapse timeout in hover mode */
   guint auto_expand_timeout;
index ff278f487f977f2f0859c01a48711c6213d4e34b..733a3cf79c2f6146dc870d0bc6feebf297d5df84 100644 (file)
@@ -2613,6 +2613,7 @@ gtk_tree_view_button_press (GtkWidget      *widget,
       /* Save press to possibly begin a drag
        */
       if (!column_handled_click &&
+         !tree_view->priv->in_grab &&
          tree_view->priv->pressed_button < 0)
         {
           tree_view->priv->pressed_button = event->button;
@@ -14513,6 +14514,8 @@ gtk_tree_view_grab_notify (GtkWidget *widget,
 {
   GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
 
+  tree_view->priv->in_grab = !was_grabbed;
+
   if (!was_grabbed)
     tree_view->priv->pressed_button = -1;
 }